//package com.pro.common.login.service;
//
//import com.pro.common.api.exception.BusinessException;
//import com.pro.common.api.model.ILoginInfo;
//import com.pro.common.api.model.request.LoginRequest;
//import com.pro.framework.api.model.IModel;
//import io.swagger.v3.oas.annotations.Parameter;
//
//import java.io.Serializable;
//import java.util.Set;
//
//public interface ILoginInfoService<T extends ILoginInfo> {
//
//    T getLoginInfo(LoginRequest loginRequest);
//
//    default T register(String request, String ip, String lang) {
//        throw new BusinessException("无法注册");
//    }
//
//    T getById(Serializable id);
//
//    boolean updateById(T entity);
//
//    Set<Long> getRoleIds(Long loginId);
//
//    default void doAfterLogin(ILoginInfo loginInfo) {
//    }
//
//    void checkAndChangePassword(ILoginInfo loginInfo, String passwordOld, String password);
//
//    /**
//     * 开放更新的dto 如果为null默认不可以
//     */
//    default Class<? extends IModel> getUpdateDTOClass() {
//        return null;
//    }
//
//    Class<T> getEntityClass();
//
//    void updateByDTO(ILoginInfo loginInfo, String requestBody);
//}
